<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // var arr = new Array(1, 2, 3, 4, 5, 6, 7, 8, 9)
        // console.log(arr)

        // var Sarr = [1, 5, 9, 3, 4, 7, 6, 2, 8, 0]
        // console.log(Sarr)
        // var flag = Array.isArray(arr)
        // console.log(flag)


        /*----------------------------------------------------------------------------------------------------------------------------------------*/

        // var arr = []
        // for (i = 1; i <= 1000; i++) {
        //     var num = Math.round(Math.random() * 100)
        //     arr.push(num)
        // }
        // console.log(arr)

        // /*-------------------------------------------------------------------------------------------------------------------------------------*/

        // var arr = []
        // for (i = 0; i < 1000; i++) {
        //     arr[i] = Math.round(Math.random() * 100)
        // }
        // console.log(arr)

        // var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]
        // console.log(arr)

        // var newArr = arr.pop()
        // console.log(arr)

        // var newArr = arr.shift()
        // console.log(arr)

        // var newArr = arr.unshift(0)
        // console.log(arr)

        // var newArr = arr.push(10)
        // console.log(arr)



        /*------------------------------*/

        // var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]
        // console.log(...arr)

        // //生成一个新数组
        // function map(arr) {
        //     var newArr = []
        //     for (i = 0; i < arr.length; i++) {
        //         newArr.push(Number((arr[i] * 1.3).toFixed(2)))
        //     }
        //     return newArr
        // }
        // console.log(map(arr))

        // //在原数组上改动
        // function map(arr) {
        //     for (i in arr) {
        //         arr[i] = Number((arr[i] * 1.3).toFixed(2))
        //     }
        //     return arr
        // }
        // console.log(map(arr))


        /*---------------------------------------------------------------------------------------------*/
        // var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]

        // // 编写函数includes(arr, item)判断数组中是否存在item这个元素，返回布尔值
        // // includes([1,2,3,4], 3) => true


        // function includes(arr, item) {
        //     var flag = false
        //     for (i of arr) {
        //         if (i == item) {
        //             flag = true
        //             break
        //         }
        //     }
        //     return flag
        // }
        // console.log(includes(arr, 10))
        // console.log(includes(arr, 5))

        // // 编写函数indexOf(arr, item)判断并返回item这个元素首次出现的下标，如果不存在返回-1
        // // indexOf([1,2,3,4], 3) => 2
        // function indexOf(arr, item) {
        //     for (i in arr) {
        //         if (arr[i] == item) {
        //             return i
        //         }
        //     }
        //     return -1
        // }
        // console.log(indexOf(arr, 944))



        // 编写函数join(arr, char)用指定的符号将数组进行拼接，返回拼接后的字符串
        // join([1,'a',3,4], '@') => '1@a@3@4'

        // function join(arr, char) {
        //     return arr.join(char)
        // }
        // console.log(join(arr, '@'))


        // var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]

        // function join(arr, char) {
        //     var str = arr[0] ? arr[0] : ''
        //     for (i = 1; i < arr.length; i++) {
        //         str += char + arr[i]
        //     }
        //     return str
        // }
        // console.log(join(arr, '@'))


        /*------------------------------------------------------------------------------------------------------*/

        // var arr1 = [1, 2, 3, 4], arr2 = [5, 6, 7, 8, 9]

        // function concat(arr1, arr2) {
        //     return arr1.concat(arr2)
        // }
        // console.log(concat(arr1, arr2))


        // function concat(arr1, arr2) {
        //     var newArry = []
        //     for (i of arr1) {
        //         newArry.push(i)
        //     }
        //     for (i of arr2) {
        //         newArry.push(i)
        //     }
        //     return newArry
        // }
        // console.log(concat(arr1, arr2))

        /*---------------------------------------------------------------------*/

        var arr = [1, 2, 3, 4, 5, [6, [7, [8, [9, [10,11]]]]]]
        function fn(arr) {
            var newArray = []
            for (i of arr) {
                if (Array.isArray(i)) {
                    for (j of i) {
                        newArray.push(j)
                    }
                } else newArray.push(i)
            }
            return newArray
        }
        console.log(fn(arr))

        console.log(arr.flat(Infinity))







    </script>
</body>

</html>